


/*
预处理器对这些语句的分析处理是在编译程序的其他部分之前进行的。

预处理语句有3种，分别是
    宏定义
    文件包含
    条件编译
    
为了与一般C程序语句相区别，所有预处理语句都以位于行首的符号“#”开始。

C语言预处理器和有关语句能够帮助程序员编写易读、易改、易移植及易调试的程序，
对于模块化程序设计也提供了很大的帮助。



宏
    “#define”指令定义一个标识符及串，
    在源程序中每次遇到该标识符时，
    编译器均用定义的串代替之。
    该标识符称为宏名，而将替换过程称为宏替换。

    #define 宏名 替换正文
    宏定义不以分号结束，而是用新行结束。
    如果给出了分号，则这个分号也被视做替换正文的一部分。

    每行的行尾要加上一个反斜线，表示宏定义继续到下一行。

    不是函数调用，而是展开成机内代码。

    提供比函数调用更高的效率。
    但预处理只是进行简单的文本代替而不做语法检查，所以会存在一些问题。

    对需要使用无参数宏的场合，建议尽量使用const代替宏定义。

    不再使用时用#undef删除宏定义。

const
    const的用处不仅仅是在常量表达式中代替宏定义。

    如果一个变量在生存期中的值不会改变，
    就应该用const来修饰这个变量，以提高程序的安全性。
*/